package ec.edu.ucacue.siop.modelo.recurso;

import java.io.Serializable;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import ec.edu.ucacue.siop.modelo.bases.UnidadMedida;

/**
 * 
 * @author Prometeo
 * Informacion de las variables de proceso para cada unidad funcional
 */
@Entity
@Table(name="variable_proceso")
public class VariableProceso implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private long id;
	private String nombre;
	private String fuenteDato;
	private boolean medida;
	private UnidadMedida unidadMedida;
	private UnidadFuncional unidadFuncional;
	private List<VariableProcesoAsociada> listaVarAsociada;
	private List<VariableAlimentacionAsociada> listaVarAlimAsociada;

	@Id
	@GeneratedValue
	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	@Column(length=64)
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	@Column(length=64)
	public String getFuenteDato() {
		return fuenteDato;
	}
	public void setFuenteDato(String fuenteDato) {
		this.fuenteDato = fuenteDato;
	}
	public UnidadMedida getUnidadMedida() {
		return unidadMedida;
	}
	public void setUnidadMedida(UnidadMedida unidadMedida) {
		this.unidadMedida = unidadMedida;
	}
	@ManyToOne
	public UnidadFuncional getUnidadFuncional() {
		return unidadFuncional;
	}
	public void setUnidadFuncional(UnidadFuncional unidadFuncional) {
		this.unidadFuncional = unidadFuncional;
	}
	public boolean isMedida() {
		return medida;
	}
	public void setMedida(boolean medida) {
		this.medida = medida;
	}
	@OneToMany(mappedBy="varPrincipal", cascade=CascadeType.ALL)
	public List<VariableProcesoAsociada> getListaVarAsociada() {
		return listaVarAsociada;
	}
	public void setListaVarAsociada(List<VariableProcesoAsociada> listaVarAsociada) {
		this.listaVarAsociada = listaVarAsociada;
	}
	@OneToMany(mappedBy="varProPrincipal", cascade=CascadeType.ALL)
	public List<VariableAlimentacionAsociada> getListaVarAlimAsociada() {
		return listaVarAlimAsociada;
	}
	public void setListaVarAlimAsociada(
			List<VariableAlimentacionAsociada> listaVarAlimAsociada) {
		this.listaVarAlimAsociada = listaVarAlimAsociada;
	}
	
}
